set.seed(1014)
knitr::knit_hooks$set(inline = function(x) prettyNum(x, big.mark = ".", decimal.mark = ","))
options(
digits = 1,
scipen = 999,
OutDec = ",",
knitr.kable.NA = "",
radian.auto_match = FALSE
)
Sys.setenv(LANGUAGE = "pt-br")
Sys.setlocale("LC_TIME", "pt_BR")
#> [1] ""library(tidyverse)
library(lubridate)
library(glue)
library(here)
library(ggtext)
library(patchwork)
library(kableExtra)
library(hrbrthemes)
library(tidytext)
library(wordcloud)
source(here("src/5-funcao-limpando-texto.R"))
`%notin%` <- function(x, y) !(x %in% y)source(here("src/0-paleta-de-cores.R"), encoding = "UTF-8")
theme_set(theme_minimal())
theme_update(
panel.grid.minor = element_blank(),
panel.background = element_rect(fill = "gray97", color = "transparent")
)pedidos_cgu <- "dados/load/rds/pedidos-cgu.rds" %>%
here() %>%
readRDS() %>%
rename(orgao = orgaodestinatario) %>%
filter(decisao %notin% c(
"Pergunta Duplicada/Repetida",
"Não se trata de solicitação de informação"
))
recursos_cgu <- "dados/load/rds/recursos-cgu.rds" %>%
here() %>%
readRDS() %>%
rename(orgao = orgaodestinatario) %>%
distinct() %>%
group_by(id_pedido) %>%
filter(row_number() == 1) %>%
ungroup()
recursos_cgu %>% count(id_pedido, sort = T)
#> # A tibble: 56.869 x 2
#> id_pedido n
#> <chr> <int>
#> 1 1435122 1
#> 2 1435396 1
#> 3 1435521 1
#> 4 1435524 1
#> 5 1435710 1
#> 6 1435717 1
#> 7 1435844 1
#> 8 1436030 1
#> 9 1436075 1
#> 10 1436151 1
#> # ... with 56.859 more rows
pedidos_clean <- "dados/load/rds/pedidos-clean.rds" %>%
here() %>%
readRDS()
recursos_clean <- "dados/load/rds/recursos-clean.rds" %>%
here() %>%
readRDS() %>%
distinct() %>%
group_by(id_pedido) %>%
filter(row_number() == 1) %>%
ungroup()pedidos_clean <- pedidos_clean %>%
mutate(
usa_lgpd_pedido_resumido = str_detect(resumo_solicitacao_clean, "LGPD"),
usa_lgpd_pedido = str_detect(detalhamento_solicitacao_clean, "LGPD"),
usa_lgpd_resposta = str_detect(resposta_clean, "LGPD")
)
recursos_clean <- recursos_clean %>%
mutate(
usa_lgpd_recurso = str_detect(desc_recurso_clean, "LGPD"),
usa_lgpd_resposta_recurso = str_detect(resposta_recurso_clean, "LGPD"),
usa_lgpd = usa_lgpd_recurso | usa_lgpd_resposta_recurso
)
lgpd <- pedidos_cgu %>%
select(
id_pedido, orgao, data_registro,
resumo_solicitacao, detalhamento_solicitacao,
resposta, decisao, assunto_pedido
) %>%
left_join(pedidos_clean) %>%
mutate(
usa_lgpd_assunto = assunto_pedido == "Dados Pessoais - LGPD",
usa_lgpd_pedido_resumido = replace_na(usa_lgpd_pedido_resumido, FALSE),
usa_lgpd = !(
!usa_lgpd_pedido_resumido &
!usa_lgpd_pedido &
!usa_lgpd_resposta &
!usa_lgpd_assunto
))
ord_interacao <- ordered(c(
"usa_lgpd",
"usa_lgpd_assunto",
"usa_lgpd_pedido_resumido",
"usa_lgpd_pedido",
"usa_lgpd_resposta",
"usa_lgpd_recurso_primeira_instancia",
"usa_lgpd_resposta_recurso_primeira_instancia",
"usa_lgpd_recurso_segunda_instancia",
"usa_lgpd_resposta_recurso_segunda_instancia",
"usa_lgpd_recurso_cgu",
"usa_lgpd_resposta_recurso_cgu",
"usa_lgpd_recurso_cmri",
"usa_lgpd_resposta_recurso_cmri",
"usa_lgpd_revisao",
"usa_lgpd_resposta_revisao"
))
recursos_clean_instancias <- recursos_clean %>%
select(starts_with("id"), where(is.logical)) %>%
left_join(
recursos_cgu %>%
select(id_pedido, id_recurso, instancia)
) %>%
select(-id_recurso)
recs <- recursos_clean_instancias %>%
mutate(instancia = if_else(instancia == "Terceira Instância", "CGU", instancia)) %>%
group_by(instancia) %>%
nest() %>%
ungroup() %>%
deframe()
recs$`Primeira Instância` <- recs$`Primeira Instância` %>%
rename(
usa_lgpd_recurso_primeira_instancia = usa_lgpd_recurso,
usa_lgpd_resposta_recurso_primeira_instancia = usa_lgpd_resposta_recurso
) %>%
select(-usa_lgpd)
recs$`Segunda Instância` <- recs$`Segunda Instância` %>%
rename(
usa_lgpd_recurso_segunda_instancia = usa_lgpd_recurso,
usa_lgpd_resposta_recurso_segunda_instancia = usa_lgpd_resposta_recurso
) %>%
select(-usa_lgpd)
recs$`CGU` <- recs$`CGU` %>%
rename(
usa_lgpd_recurso_cgu = usa_lgpd_recurso,
usa_lgpd_resposta_recurso_cgu = usa_lgpd_resposta_recurso
) %>%
select(-usa_lgpd)
recs$`CMRI` <- recs$`CMRI` %>%
rename(
usa_lgpd_recurso_cmri = usa_lgpd_recurso,
usa_lgpd_resposta_recurso_cmri = usa_lgpd_resposta_recurso
) %>%
select(-usa_lgpd)
recs$`Pedido de Revisão` <- recs$`Pedido de Revisão` %>%
rename(
usa_lgpd_revisao = usa_lgpd_recurso,
usa_lgpd_resposta_revisao = usa_lgpd_resposta_recurso
) %>%
select(-usa_lgpd)
lbl_x <- c("Assunto", "Resumo do\npedido",
"Pedido", "Resposta", "Reclamação", "Resposta\nreclamação",
"Recurso 1ª", "Resposta\nrecurso 1ª", "Recurso 2ª",
"Resposta\nrecurso 2ª", "CGU", "Resposta\nCGU 3ª",
"CMRI", "Resposta\nCMRI")
cores_detecta_lgpd <- c(
"Termo LGPD não detectado" = cores_aep[["laranja"]],
"Termo LGPD detectado" = cores_aep[["rosa"]]
)
recs %>%
reduce(full_join) %>%
left_join(lgpd, .) %>%
select(id_pedido, where(is.logical)) %>%
count(
usa_lgpd,
usa_lgpd_assunto,
usa_lgpd_pedido_resumido,
usa_lgpd_pedido,
usa_lgpd_resposta,
usa_lgpd_recurso_primeira_instancia,
usa_lgpd_resposta_recurso_primeira_instancia,
usa_lgpd_recurso_segunda_instancia,
usa_lgpd_resposta_recurso_segunda_instancia,
usa_lgpd_recurso_cgu,
usa_lgpd_resposta_recurso_cgu,
usa_lgpd_recurso_cmri,
usa_lgpd_resposta_recurso_cmri,
usa_lgpd_revisao,
usa_lgpd_resposta_revisao,
sort = T
) %>%
mutate(combinacao = str_glue("Combinação {row_number()}")) %>%
pivot_longer(
-c(n, combinacao),
names_to = "onde",
values_to = "usa"
) %>%
filter(!is.na(usa), onde != "usa_lgpd") %>%
mutate(onde = ordered(onde, levels = ord_interacao),
usa = case_when(
usa ~ "Termo LGPD detectado",
!usa ~ "Termo LGPD não detectado"
)) %>%
ggplot(aes(
x = onde,
y = reorder(combinacao, n),
fill = usa,
group = reorder(combinacao, n)
)) +
geom_line() +
geom_point(color = "transparent", shape = 21, size = 4) +
scale_x_discrete(labels = lbl_x, position = "top") +
scale_fill_manual(values = cores_detecta_lgpd) +
labs(
title = "Mapeamento do pedido do início ao fim",
subtitle = "Cada ponto é uma interação registrada, o texto da interação foi analizado detectando ou não termos associados a LGPD",
fill = NULL,
x = NULL,
y = NULL
) +
theme(
legend.position = "top",
legend.direction = "horizontal",
legend.justification = "left",
axis.ticks.x = element_blank(),
axis.text.y = element_blank()
)O gráfico abaixo mostra a evolução dos pedidos onde alguma menção à LGPD foi detectada tanto no pedido quanto na resposta.
lgpd %>%
filter(year(data_registro) >= 2018) %>%
count(data_registro, usa_lgpd) %>%
mutate(usa_lgpd = if_else(usa_lgpd, "Sim (quantidade)", "Não")) %>%
ggplot(aes(x = data_registro, y = n, fill = reorder(usa_lgpd, -n))) +
geom_col() +
geom_text(
data = . %>%
add_count(data_registro, wt = n) %>%
filter(usa_lgpd == "Não") %>%
mutate(nn - n) %>%
filter(`nn - n` > 0),
aes(
y = `nn - n`,
label = `nn - n`,
),
color = cores_aep[["rosa"]],
vjust = -.5,
hjust = 0,
size = 2.5,
fontface = "bold",
angle = 45
) +
labs(
title = "Detecção dos termos relacionados a LGPD",
subtitle = "Considerando menções no pedido e na resposta",
x = NULL,
y = "Quantidade de pedidos",
fill = "Pedido\nmenciona LGPD"
) +
scale_fill_manual(values = c(alpha(cores_aep[["laranja"]], .5),
cores_aep[["rosa"]])) +
scale_x_date(date_breaks = "6 months", date_labels = "%b-%Y") +
theme(axis.ticks.x = element_line())lgpd_counts <- lgpd %>%
select(data_registro, where(is.logical)) %>%
filter(usa_lgpd) %>%
mutate(
data_registro,
mencao_lgpd = case_when(
!usa_lgpd_assunto &
!usa_lgpd_pedido &
!usa_lgpd_pedido_resumido ~ str_glue(
"Solicitante não menciona LGPD em pedido,",
"\nórgão menciona na resposta"
),
TRUE ~ "Solicitante menciona LGPD no pedido ou assunto do pedido"
)
) %>%
count(data_registro, mencao_lgpd)O pico de Abril de 2020 pode ser explicado por pedidos que mencionam a LGPD ou no assunto (ao fazer o pedido, o solicitante seleciona a opção “Dados Pessoais - LGPD” no campo “Assunto do pedido”) ou no conteúdo do pedido
lgpd_counts %>%
ggplot(aes(x = data_registro, y = n, color = reorder(mencao_lgpd, -n))) +
geom_line(size = 1.3) +
geom_point(size = 2) +
scale_color_manual(values = c(cores_tb[["azul"]], cores_aep[["rosa"]])) +
labs(title = "Onde a LGPD foi mencionada",
color = NULL,
x = "Quantidade",
y = "Ano"
) +
theme(legend.position = "top",
legend.direction = "vertical",
legend.justification = "left")Analisando ano a ano, agregando os meses, as solicitações respondidas com menções à LGPD, praticamente dobrou em 2021 em relação à 2020.
lgpd_counts %>%
count(ano = year(data_registro), mencao_lgpd,
wt = n, name = "n") %>%
ggplot(aes(x = ano, y = n, color = mencao_lgpd)) +
geom_line(
data = . %>%
filter(mencao_lgpd != str_glue("Solicitante não menciona LGPD em pedido,",
"\nórgão menciona na resposta")),
size = 1.3) +
geom_point(
data = . %>%
filter(mencao_lgpd != str_glue("Solicitante não menciona LGPD em pedido,",
"\nórgão menciona na resposta")),
size = 2.3, shape = 17) +
geom_line(
data = . %>%
filter(mencao_lgpd == str_glue("Solicitante não menciona LGPD em pedido,",
"\nórgão menciona na resposta")),
size = 1.3) +
geom_point(
data = . %>%
filter(mencao_lgpd == str_glue("Solicitante não menciona LGPD em pedido,",
"\nórgão menciona na resposta")),
size = 2) +
scale_color_manual(values = c(cores_tb[["azul"]], cores_aep[["rosa"]])) +
labs(title = "Onde a LGPD foi mencionada",
color = NULL,
x = "Quantidade",
y = "Ano"
) +
theme(
legend.position = "top",
legend.direction = "vertical",
legend.justification = "left"
)lgpd_counts %>%
filter(str_detect(mencao_lgpd, "Solicitante não menciona LGPD em pedido")) %>%
mutate(mencao_lgpd = str_replace(mencao_lgpd, "\\n", " ")) %>%
ggplot(aes(x = data_registro, y = n, fill = mencao_lgpd)) +
geom_col() +
scale_fill_manual(values = cores_aep[["rosa"]]) +
labs(
y = "Quantidade de resposta",
x = NULL,
title = str_glue(
"Evolução do uso da LGPD nas respostas dos ",
"pedidos de acesso a informação via LAI"
),
fill = NULL
) +
theme(
legend.justification = "left",
legend.position = "top"
)Quantidade de vezes que órgãos citaram LGPD para responder algum pedido:
O termo LGPD foi detectado na resposta do pedido, mas o solicitante não menciona o assunto no pedido (o termo não é detectado no pedido).
qt_lgpd <- lgpd %>%
filter(
usa_lgpd_resposta &
!usa_lgpd_pedido &
!usa_lgpd_pedido_resumido &
assunto_pedido != "Dados Pessoais - LGPD"
) %>%
count(ano = year(data_registro), usa_lgpd_resposta, usa_lgpd_pedido)
qt_lgpd %>%
ggplot(aes(x = ano, y = cumsum(n))) +
geom_col(fill = cores_aep[["laranja"]]) +
geom_text(aes(label = cumsum(n)), vjust = 0) +
labs(
x = "Ano",
y = "Quantidade (acumulada)",
title = "Quantidade acumulada de respostas dadas citando LGPD",
subtitle = str_glue(
"Até setembro de 2021 foram {sum(qt_lgpd$n)} ",
"usos da LGPD em respostas aos solicitantes pelos órgãos, sem que os \n",
"solicitantes façam menções à LGPD no pedido"
))lgpd %>%
filter(
usa_lgpd_resposta &
!usa_lgpd_pedido &
!usa_lgpd_pedido_resumido &
assunto_pedido != "Dados Pessoais - LGPD"
) %>%
count(assunto_pedido, sort = T) %>%
slice_max(n = 10, order_by = n) %>%
ggplot(aes(x = reorder(assunto_pedido, n), y = n)) +
geom_col(fill = cores_tb[["azul"]]) +
geom_text(aes(label = n), hjust = 0) +
labs(
title = "10 principais assuntos em que em que o órgão mencionou LGPD\nna resposta",
y = "Quntidade de pedidos",
x = NULL
) +
coord_flip()lgpd %>%
filter(
usa_lgpd_resposta &
!usa_lgpd_pedido &
!usa_lgpd_pedido_resumido &
assunto_pedido != "Dados Pessoais - LGPD"
) %>%
count(decisao, sort = T) %>%
ggplot(aes(x = reorder(decisao, n), y = n)) +
geom_col(aes(fill = decisao), show.legend = F) +
geom_text(aes(label = n), hjust = 0) +
labs(
title = "Decisão mais frequente quando órgão menciona LGPD na resposta",
y = "Quntidade de pedidos",
x = NULL
) +
scale_fill_manual(values = cores_decisao2) +
coord_flip()cores_decisao_aux <- cores_decisao[-c(2, 5)]
cores_decisao_aux[["Informação Inexistente"]] <- cores_aep[["marrom"]]
names(cores_decisao_aux) <- str_wrap(names(cores_decisao_aux), 25)
lgpd %>%
filter(
usa_lgpd_resposta &
!usa_lgpd_pedido &
!usa_lgpd_pedido_resumido &
assunto_pedido != "Dados Pessoais - LGPD"
) %>%
count(ano = year(data_registro), decisao, sort = T) %>%
complete(decisao, ano, fill = list(n = 0)) %>%
mutate(decisao = str_wrap(decisao, 25)) %>%
filter(ano > 2018) %>%
ggplot(aes(x = reorder(ano, n), y = n, fill = decisao)) +
geom_col(position = "dodge") +
geom_text(aes(label = if_else(n > 0, n, NA_real_)),
position = position_dodge(width = .9), vjust = 0) +
scale_fill_manual(values = cores_decisao_aux) +
ylim(c(0, 600)) +
facet_wrap(ano ~ ., scales = "free_x", ncol = 1) +
labs(
title = "Decisões quando órgão menciona LGPD",
y = "Quantidade de pedidos",
x = "Decisão",
fill = "Decisão:"
) +
theme(
axis.text.x = element_blank(),
strip.text = element_text(hjust = 0, face = "bold", size = 14),
legend.text = element_text(size = 8, margin = margin(5, 0, 5, 0, "pt"))
)lgpd %>%
filter(
usa_lgpd_resposta &
!usa_lgpd_pedido &
!usa_lgpd_pedido_resumido &
assunto_pedido != "Dados Pessoais - LGPD"
) %>%
count(data_registro, decisao, sort = T) %>%
mutate(decisao = str_wrap(decisao, 25)) %>%
ggplot(aes(x = data_registro, y = n, color = decisao)) +
geom_line(size = 1) +
scale_color_manual(values = cores_decisao_aux) +
labs(
title = "Evolução das decisões quando órgão menciona LGPD nas resposta",
subtitle = "Solicitante não menciona LGPD no pedido",
x = NULL,
y = "Quantidade de pedidos"
)lgpd %>%
filter(
usa_lgpd_resposta &
!usa_lgpd_pedido &
!usa_lgpd_pedido_resumido &
assunto_pedido != "Dados Pessoais - LGPD"
) %>%
count(data_registro, decisao, sort = T) %>%
filter(decisao == "Acesso Negado") %>%
ggplot(aes(x = data_registro, y = n)) +
geom_col(fill = cores_aep[["rosa"]]) +
geom_text(aes(label = n), vjust = 0) +
labs(
title = "Evolução das decisões de acesso negado quando órgão menciona LGPD nas resposta",
subtitle = "Solicitante não menciona LGPD no pedido",
x = NULL,
y = "Quantidade de pedidos\ncom acesso negado"
)O gráfico abaixo mostra os órgãos que mencionaram a LGPD, considerando somente pedidos em que o solicitante não menciona ou não faz referência à LGPD no pedido.
lgpd %>%
filter(
usa_lgpd_resposta &
!usa_lgpd_pedido &
!usa_lgpd_pedido_resumido &
assunto_pedido != "Dados Pessoais - LGPD"
) %>%
count(sigla = str_extract(orgao, "^[:upper:]+(?= )|^GSI-PR"), sort = T) %>%
group_by(n) %>%
nest() %>%
ungroup() %>%
mutate(
sigla = map(data, pull, sigla),
sigla = paste(sigla),
sigla = str_remove_all(sigla, "^c\\(|\\\"|\\)" ),
sigla = str_wrap(sigla, 100)
) %>%
filter(n > 10) %>%
ggplot(aes(x = reorder(sigla, n), y = n)) +
geom_col(fill = cores_aep[["rosa"]]) +
geom_text(aes(label = n), hjust = 0) +
coord_flip() +
labs(
title = "Quantidade de respostas que mencionam a LGPD, por órgão",
subtitle = str_glue(
"Solicitante não menciona LGPD em pedido ou assunto do pedido, ",
"órgão menciona na resposta"
),
x = "Órgão (sigla)",
y = "Quantidade de pedidos respondidos"
)plot_historico_mencao_lgpd <- function(df, nome_orgao) {
df <- df %>%
filter(orgao == nome_orgao) %>%
filter(
usa_lgpd_resposta &
!usa_lgpd_pedido &
!usa_lgpd_pedido_resumido &
assunto_pedido != "Dados Pessoais - LGPD"
) %>%
count(data_registro, orgao)
df %>%
ggplot(aes(x = data_registro, y = n)) +
geom_col(fill = cores_aep[["rosa"]]) +
scale_x_date(date_labels = "%b-%Y") +
labs(
title = str_glue("{unique(df$orgao)}"),
subtitle = "Menções à LGPD apenas na resposta e ausentes nos pedidos",
x = NULL,
y = "Quantidade de pedidos respondidos"
)
}
plot_assuntos_mencao_lgpd <- function(df, nome_orgao) {
df <- df %>%
filter(orgao == nome_orgao) %>%
filter(
usa_lgpd_resposta &
!usa_lgpd_pedido &
!usa_lgpd_pedido_resumido &
assunto_pedido != "Dados Pessoais - LGPD"
) %>%
count(assunto_pedido = str_wrap(assunto_pedido, 30), orgao, sort = T) %>%
filter(row_number() <= 10)
df %>%
ggplot(aes(y = n, x = reorder(assunto_pedido, n))) +
geom_col(fill = cores_aep[["laranja"]]) +
geom_text(aes(label = n), hjust = 0) +
coord_flip() +
labs(
title = str_glue("Principais assuntos - {unique(df$orgao)}"),
subtitle = "Assuntos abordados que levaram o órgão a responder com menção a LGPD",
x = NULL,
y = "Quantidade de pedidos"
)
}
plot_decisoes_mencao_lgpd <- function(df, nome_orgao) {
df <- df %>%
filter(orgao == nome_orgao) %>%
filter(
usa_lgpd_resposta &
!usa_lgpd_pedido &
!usa_lgpd_pedido_resumido &
assunto_pedido != "Dados Pessoais - LGPD"
) %>%
count(orgao, data_registro, decisao = str_wrap(decisao, 25), sort = T)
cores_decisao <- str_wrap(cores_decisao[-c(2, 5)], 25)
df %>%
ggplot(aes(x = data_registro, y = n, color = decisao)) +
geom_line(size = .8) +
scale_color_manual(values = cores_decisao) +
scale_x_date(date_labels = "%b-%Y") +
labs(
title = str_glue("{unique(df$orgao)}"),
subtitle = "Menção à LGPD e decisão sobre acesso",
x = NULL,
y = "Quantidade"
)
}
plot_wordcloud_mencao_lgpd <- function(df, nome_orgao) {
df <- df %>%
filter(orgao == nome_orgao) %>%
filter(
usa_lgpd_resposta &
!usa_lgpd_pedido &
!usa_lgpd_pedido_resumido &
assunto_pedido != "Dados Pessoais - LGPD"
) %>%
select(id_pedido, detalhamento_solicitacao_clean) %>%
unnest_tokens(word, detalhamento_solicitacao_clean) %>%
anti_join(stopwords) %>%
mutate(
word = str_extract(word, "[a-z']+"),
word = if_else(word == "urltag", "link-url", word)
) %>%
filter(!str_count(word) %in% c(1, 2)) %>%
count(word, sort = T)
df %>%
with(
wordcloud(
word,
n,
max.words = 150,
random.order = F,
random.color = F,
main = title,
colors = c(
cores_tb[["cinza_claro"]],
cores_aep[["laranja"]],
cores_aep[["rosa"]],
cores_tb[["azul"]]
)
)
)
}Ministério da Saúde nega pedidos de acesso a informação em casos relacionados a pandemia.
plot_historico_mencao_lgpd(lgpd, "MS – Ministério da Saúde")plot_assuntos_mencao_lgpd(lgpd, "MS – Ministério da Saúde")plot_decisoes_mencao_lgpd(lgpd, "MS – Ministério da Saúde")plot_wordcloud_mencao_lgpd(lgpd, "MS – Ministério da Saúde")plot_historico_mencao_lgpd(lgpd, "INCRA – Instituto Nacional de Colonização e Reforma Agrária") plot_assuntos_mencao_lgpd(lgpd, "INCRA – Instituto Nacional de Colonização e Reforma Agrária") plot_decisoes_mencao_lgpd(lgpd, "INCRA – Instituto Nacional de Colonização e Reforma Agrária")plot_wordcloud_mencao_lgpd(lgpd, "INCRA – Instituto Nacional de Colonização e Reforma Agrária")plot_historico_mencao_lgpd(lgpd, "IMBEL – Indústria de Material Bélico do Brasil")plot_assuntos_mencao_lgpd(lgpd, "IMBEL – Indústria de Material Bélico do Brasil")plot_decisoes_mencao_lgpd(lgpd, "IMBEL – Indústria de Material Bélico do Brasil")plot_wordcloud_mencao_lgpd(lgpd, "IMBEL – Indústria de Material Bélico do Brasil")plot_historico_mencao_lgpd(lgpd, "GSI-PR – Gabinete de Segurança Institucional da Presidência da República")plot_assuntos_mencao_lgpd(lgpd, "GSI-PR – Gabinete de Segurança Institucional da Presidência da República")plot_decisoes_mencao_lgpd(lgpd, "GSI-PR – Gabinete de Segurança Institucional da Presidência da República")plot_wordcloud_mencao_lgpd(lgpd, "GSI-PR – Gabinete de Segurança Institucional da Presidência da República")plot_historico_mencao_lgpd(lgpd, "ME - Ministério da Economia")plot_assuntos_mencao_lgpd(lgpd, "ME - Ministério da Economia")plot_decisoes_mencao_lgpd(lgpd, "ME - Ministério da Economia")plot_wordcloud_mencao_lgpd(lgpd, "ME - Ministério da Economia")plot_historico_mencao_lgpd(lgpd, "CNPQ – Conselho Nacional de Desenvolvimento Científico e Tecnológico") plot_assuntos_mencao_lgpd(lgpd, "CNPQ – Conselho Nacional de Desenvolvimento Científico e Tecnológico") plot_decisoes_mencao_lgpd(lgpd, "CNPQ – Conselho Nacional de Desenvolvimento Científico e Tecnológico")plot_wordcloud_mencao_lgpd(lgpd, "CNPQ – Conselho Nacional de Desenvolvimento Científico e Tecnológico")plot_historico_mencao_lgpd(lgpd, "INEP – Instituto Nacional de Estudos e Pesquisas Educacionais Anísio Teixeira")plot_assuntos_mencao_lgpd(lgpd, "INEP – Instituto Nacional de Estudos e Pesquisas Educacionais Anísio Teixeira")plot_decisoes_mencao_lgpd(lgpd, "INEP – Instituto Nacional de Estudos e Pesquisas Educacionais Anísio Teixeira")plot_wordcloud_mencao_lgpd(lgpd, "INEP – Instituto Nacional de Estudos e Pesquisas Educacionais Anísio Teixeira")plot_historico_mencao_lgpd(lgpd, "MMFDH – Ministério da Mulher, da Família e dos Direitos Humanos")plot_assuntos_mencao_lgpd(lgpd, "MMFDH – Ministério da Mulher, da Família e dos Direitos Humanos")plot_decisoes_mencao_lgpd(lgpd, "MMFDH – Ministério da Mulher, da Família e dos Direitos Humanos")plot_wordcloud_mencao_lgpd(lgpd, "MMFDH – Ministério da Mulher, da Família e dos Direitos Humanos")plot_historico_mencao_lgpd(lgpd, "ANEEL – Agência Nacional de Energia Elétrica") plot_assuntos_mencao_lgpd(lgpd, "ANEEL – Agência Nacional de Energia Elétrica") plot_decisoes_mencao_lgpd(lgpd, "ANEEL – Agência Nacional de Energia Elétrica")plot_wordcloud_mencao_lgpd(lgpd, "ANEEL – Agência Nacional de Energia Elétrica")plot_historico_mencao_lgpd(lgpd, "CGU – Controladoria-Geral da União") plot_assuntos_mencao_lgpd(lgpd, "CGU – Controladoria-Geral da União") plot_decisoes_mencao_lgpd(lgpd, "CGU – Controladoria-Geral da União")plot_wordcloud_mencao_lgpd(lgpd, "CGU – Controladoria-Geral da União")plot_historico_mencao_lgpd(lgpd, "MCTI – Ministério da Ciência, Tecnologia, Inovações")plot_assuntos_mencao_lgpd(lgpd, "MCTI – Ministério da Ciência, Tecnologia, Inovações")plot_decisoes_mencao_lgpd(lgpd, "MCTI – Ministério da Ciência, Tecnologia, Inovações")plot_wordcloud_mencao_lgpd(lgpd, "MCTI – Ministério da Ciência, Tecnologia, Inovações")plot_historico_mencao_lgpd(lgpd, "PETROBRAS – Petróleo Brasileiro S.A.")plot_assuntos_mencao_lgpd(lgpd, "PETROBRAS – Petróleo Brasileiro S.A.")plot_decisoes_mencao_lgpd(lgpd, "PETROBRAS – Petróleo Brasileiro S.A.")plot_wordcloud_mencao_lgpd(lgpd, "PETROBRAS – Petróleo Brasileiro S.A.")plot_historico_mencao_lgpd(lgpd, "MAPA – Ministério da Agricultura, Pecuária e Abastecimento")plot_assuntos_mencao_lgpd(lgpd, "MAPA – Ministério da Agricultura, Pecuária e Abastecimento")plot_decisoes_mencao_lgpd(lgpd, "MAPA – Ministério da Agricultura, Pecuária e Abastecimento")plot_wordcloud_mencao_lgpd(lgpd, "MAPA – Ministério da Agricultura, Pecuária e Abastecimento")plot_historico_mencao_lgpd(lgpd, "MD – Ministério da Defesa")plot_assuntos_mencao_lgpd(lgpd, "MD – Ministério da Defesa")plot_decisoes_mencao_lgpd(lgpd, "MD – Ministério da Defesa")plot_wordcloud_mencao_lgpd(lgpd, "MD – Ministério da Defesa")plot_historico_mencao_lgpd(lgpd, "ANVISA – Agência Nacional de Vigilância Sanitária")plot_assuntos_mencao_lgpd(lgpd, "ANVISA – Agência Nacional de Vigilância Sanitária")plot_decisoes_mencao_lgpd(lgpd, "ANVISA – Agência Nacional de Vigilância Sanitária")plot_wordcloud_mencao_lgpd(lgpd, "ANVISA – Agência Nacional de Vigilância Sanitária")plot_historico_mencao_lgpd(lgpd, "BB – Banco do Brasil S.A.")plot_assuntos_mencao_lgpd(lgpd, "BB – Banco do Brasil S.A.")plot_decisoes_mencao_lgpd(lgpd, "BB – Banco do Brasil S.A.")plot_wordcloud_mencao_lgpd(lgpd, "BB – Banco do Brasil S.A.")Quais foram os órgãos que mais emitiram respostas que mencionam a LGPD e foram classificadas como “Acesso Negado”, por ano?
lgpd_negativas <- lgpd %>%
select(
id_pedido, orgao, data_registro,
decisao, where(is.logical), assunto_pedido
) %>%
add_count(orgao, name = "n_orgao") %>%
add_count(orgao, decisao, name = "n_orgao_decisao") %>%
add_count(decisao, name = "n_decisao") %>%
filter(
usa_lgpd_resposta &
!usa_lgpd_pedido &
!usa_lgpd_pedido_resumido &
assunto_pedido != "Dados Pessoais - LGPD"
) %>%
filter(decisao == "Acesso Negado")
lgpd_negativas %>%
select(
data_registro, orgao, decisao, assunto_pedido,
starts_with("usa"), starts_with("n")
) %>%
distinct() %>%
count(orgao, sort = TRUE) %>%
slice_max(n = 15, order_by = n) %>%
ggplot(aes(x = reorder(orgao, n), y = n)) +
geom_col(fill = cores_aep[["rosa"]]) +
geom_text(aes(label = n), hjust = 1,
color = cores_tb[["cinza_quase_branco"]]) +
coord_flip() +
labs(
title = "Acessos negados mencionando a LGPD na resposta",
subtitle = "Solicitante não menciona LGPD no pedido",
x = NULL,
y = "Quantidade"
)Lista completa
tbla <- lgpd_negativas %>%
select(
data_registro, orgao, decisao, assunto_pedido,
starts_with("usa"), starts_with("n")
) %>%
distinct() %>%
count(orgao, sort = TRUE)
tbla %>%
reactable::reactable()